#include <string>

struct FileModel {
  FileModel(std::string name, short int protect_code, size_t length)
      : name(name), protect_code(protect_code), length(length) {}

  FileModel() { FileModel("", 0, 0); }

  std::string name;
  short int protect_code;
  size_t length;
};

struct UF {
  FileModel file_model;
  UF *next_UF;

  UF(std::string name, short int protect_code, size_t length,
     UF *next_UF = nullptr)
      : file_model(name, protect_code, length), next_UF(next_UF) {}
  UF() : file_model(), next_UF(nullptr) {}
};